Computer networks such as the Internet use various techniques and mechanisms for routing requested packets over data links in response to content requests. In some cases, a routing algorithm may re-configure or re-route pre-established paths in order to enact new routing patterns. Such changes may be undertaken as a result of modifications to the capacity of a particular network link or server, the addition or elimination of network paths or server facilities, or other related reasons, failures, and so forth. In other cases, network devices are employed which have the ability to re-route network traffic, as needed, between different server alternatives that may each hold desired packets, such as, for example, duplicate or cache content servers.
Network Address Translation (NAT) is a method for translating a first network address used in a packet being transferred from one network location on a first network that uses a first set of addresses to a second address usable on a second network that uses a second set of addresses. For example, one use of NAT is to translate the destination address of a packet, which a LAN receives from the Internet, from the publicly known address of one NAT device coupling in the LAN to the Internet to an address of any of multiple devices existing in the LAN whose addresses are not publicly known, to which the packet must travel. After changing the address to a new address, the NAT device can forward the packet onto the LAN using the translated address.
In some cases, a TCP port number of a packet may provide information used by the NAT device to perform the translation of the address of the packet to the new address. As an example, if a destination computer system on a network receives a packet requesting data and containing an address translated as described above, the destination computer system can return data packets to the NAT device (e.g., the device that changed the packet to contain the translated address). The destination computer system does so by creating response packets that reference the source address and port information within the packet header that identify the NAT device as the originating device of the original packet requesting the data. When these response packets are routed back to the NAT device, the NAT device can compare the TCP port number information to NAT table entries to determine a true destination device on another network (e.g., a LAN) to which that packet is then forwarded.
Another conventional technology related to the present invention allows a network such as a Local Area Network (LAN) to interconnect with another network such as the Internet through multiple pathways. Such networks are referred to as multi-homed networks. Essentially, a multi-homed network such as a LAN couples to another network in multiple locations referred to as gateways. As an example, a large national corporation may have an internal corporate network data links extending between many cities (e.g., over leased lines). Due to the large nature of this network, in order to allow communications with the Internet (i.e., with computers outside of the corporate network), the network can have multiple gateway connections to the Internet, each located in diverse geographic locations. Each gateway can allow traffic to be routed to and from the corporate network and the Internet. In some cases also, there can be a collection of interconnected LAN's, a metropolitan area network, a larger campus network or a corporate wide area network, etc. In another case of a multi-homed network, a single LAN is connected to multiple upstream ISP links in a single location.
The NAT approach is described in RFC 1631 of the Internet Engineering Task Force. The disclosure of RFC 1631, “The IP Network Address Translator (NAT),” is hereby incorporated in its entirety herein by reference.